Graphical user interface developers may frequently implement a dialog which represents the state of an object model. Conventionally, the implementation involves a great deal of programming to create the dialog and controls, populate the controls with the state of the object model, and transfer the dialog control state information back to the object model when the user has concluded the dialog interaction. The task usually entails a large amount of procedural programming, which tends to be repetitive, tedious, and error-prone.